# -*- coding: utf-8 -*-
from gi.repository import GObject
INDICATOR_SIGNAL_CONNECTION_CHANGED = r"""connection-changed"""
INDICATOR_SIGNAL_NEW_ATTENTION_ICON = r"""new-attention-icon"""
INDICATOR_SIGNAL_NEW_ICON = r"""new-icon"""
INDICATOR_SIGNAL_NEW_ICON_THEME_PATH = r"""new-icon-theme-path"""
INDICATOR_SIGNAL_NEW_LABEL = r"""new-label"""
INDICATOR_SIGNAL_NEW_STATUS = r"""new-status"""
INDICATOR_SIGNAL_SCROLL_EVENT = r"""scroll-event"""


class IndicatorCategory:
    """The category provides grouping for the indicators so that
users can find indicators that are similar together."""
    APPLICATION_STATUS = 0
    COMMUNICATIONS = 1
    SYSTEM_SERVICES = 2
    HARDWARE = 3
    OTHER = 4


class IndicatorStatus:
    """These are the states that the indicator can be on in
the user's panel.  The indicator by default starts
in the state @APP_INDICATOR_STATUS_PASSIVE and can be
shown by setting it to @APP_INDICATOR_STATUS_ACTIVE."""
    PASSIVE = 0
    ACTIVE = 1
    ATTENTION = 2


class Indicator(GObject.Object):
    """A application indicator represents the values that are needed to show a
unique status in the panel for an application.  In general, applications
should try to fit in the other indicators that are available on the
panel before using this.  But, sometimes it is necissary.

 Private fields"""
    
    def __init__(self, id=None, icon_name=None, category=None):
        """        Creates a new #AppIndicator setting the properties:
        #AppIndicator:id with @id, #AppIndicator:category with @category
        and #AppIndicator:icon-name with @icon_name.
        @param id: The unique id of the indicator to create.
        @param icon_name: The icon name for this indicator
        @param category: The category of indicator.
        @type id: str
        @type icon_name: str
        @type category: IndicatorCategory
        @returns: Newly created Indicator
        @rtype: Indicator
        """
        return object
    @staticmethod
    def new(id=None, icon_name=None, category=None):
        """        Creates a new #AppIndicator setting the properties:
        #AppIndicator:id with @id, #AppIndicator:category with @category
        and #AppIndicator:icon-name with @icon_name.
        @param id: The unique id of the indicator to create.
        @param icon_name: The icon name for this indicator
        @param category: The category of indicator.
        @type id: str
        @type icon_name: str
        @type category: IndicatorCategory
        @returns: Newly created Indicator
        @rtype: Indicator
        """
        return object
    @staticmethod
    def new_with_path(id=None, icon_name=None, category=None, icon_theme_path=None):
        """        Creates a new #AppIndicator setting the properties:
        #AppIndicator:id with @id, #AppIndicator:category with @category,
        #AppIndicator:icon-name with @icon_name and #AppIndicator:icon-theme-path
        with @icon_theme_path.
        @param id: The unique id of the indicator to create.
        @param icon_name: The icon name for this indicator
        @param category: The category of indicator.
        @param icon_theme_path: A custom path for finding icons.
        @type id: str
        @type icon_name: str
        @type category: IndicatorCategory
        @type icon_theme_path: str
        @returns: Newly created Indicator
        @rtype: Indicator
        """
        return object
    
    def connection_changed(self, connected=None, user_data=None):
        """        
        @type connected: bool
        @type user_data: gpointer
        @returns: 
        @rtype: None
        """
        return object
    
    def fallback(self):
        """        
        @returns: 
        @rtype: Gtk.StatusIcon
        """
        return object
    
    def new_attention_icon(self, user_data=None):
        """        
        @type user_data: gpointer
        @returns: 
        @rtype: None
        """
        return object
    
    def new_icon(self, user_data=None):
        """        
        @type user_data: gpointer
        @returns: 
        @rtype: None
        """
        return object
    
    def new_icon_theme_path(self, icon_theme_path=None, user_data=None):
        """        
        @type icon_theme_path: str
        @type user_data: gpointer
        @returns: 
        @rtype: None
        """
        return object
    
    def new_label(self, label=None, guide=None, user_data=None):
        """        
        @type label: str
        @type guide: str
        @type user_data: gpointer
        @returns: 
        @rtype: None
        """
        return object
    
    def new_status(self, status=None, user_data=None):
        """        
        @type status: str
        @type user_data: gpointer
        @returns: 
        @rtype: None
        """
        return object
    
    def scroll_event(self, delta=None, direction=None, user_data=None):
        """        
        @type delta: int
        @type direction: Gdk.ScrollDirection
        @type user_data: gpointer
        @returns: 
        @rtype: None
        """
        return object
    
    def unfallback(self, status_icon=None):
        """        
        @type status_icon: Gtk.StatusIcon
        @returns: 
        @rtype: None
        """
        return object
    
    def build_menu_from_desktop(self, desktop_file=None, desktop_profile=None):
        """        This function allows for building the Application Indicator menu
        from a static desktop file.
        @param desktop_file: A path to the desktop file to build the menu from
        @param desktop_profile: Which entries should be used from the desktop file
        @type desktop_file: str
        @type desktop_profile: str
        @returns: 
        @rtype: None
        """
        return object
    
    def get_attention_icon(self):
        """        Wrapper function for property #AppIndicator:attention-icon-name.
        @returns: The current attention icon name.
        @rtype: str
        """
        return object
    
    def get_attention_icon_desc(self):
        """        Wrapper function for property #AppIndicator:attention-icon-desc.
        @returns: The current attention icon description.
        @rtype: str
        """
        return object
    
    def get_category(self):
        """        Wrapper function for property #AppIndicator:category.
        @returns: The current category.
        @rtype: IndicatorCategory
        """
        return object
    
    def get_icon(self):
        """        Wrapper function for property #AppIndicator:icon-name.
        @returns: The current icon name.
        @rtype: str
        """
        return object
    
    def get_icon_desc(self):
        """        Wrapper function for property #AppIndicator:icon-desc.
        @returns: The current icon description.
        @rtype: str
        """
        return object
    
    def get_icon_theme_path(self):
        """        Wrapper function for property #AppIndicator:icon-theme-path.
        @returns: The current icon theme path.
        @rtype: str
        """
        return object
    
    def get_id(self):
        """        Wrapper function for property #AppIndicator:id.
        @returns: The current ID
        @rtype: str
        """
        return object
    
    def get_label(self):
        """        Wrapper function for property #AppIndicator:label.
        @returns: The current label.
        @rtype: str
        """
        return object
    
    def get_label_guide(self):
        """        Wrapper function for property #AppIndicator:label-guide.
        @returns: The current label guide.
        @rtype: str
        """
        return object
    
    def get_menu(self):
        """        Gets the menu being used for this application indicator.
        Wrapper function for property #AppIndicator:menu.
        @returns: A #GtkMenu object or %NULL if one hasn't been set.
        @rtype: Gtk.Menu
        """
        return object
    
    def get_ordering_index(self):
        """        Wrapper function for property #AppIndicator:ordering-index.
        @returns: The current ordering index.
        @rtype: guint32
        """
        return object
    
    def get_secondary_activate_target(self):
        """        Gets the menuitem being called on secondary-activate event.
        @returns: A #GtkWidget object or %NULL if none has been set.
        @rtype: Gtk.Widget
        """
        return object
    
    def get_status(self):
        """        Wrapper function for property #AppIndicator:status.
        @returns: The current status.
        @rtype: IndicatorStatus
        """
        return object
    
    def get_title(self):
        """        Gets the title of the application indicator.  See the function
        app_indicator_set_title() for information on the title.
        @returns: The current title.
        @rtype: str
        """
        return object
    
    def set_attention_icon(self, icon_name=None):
        """        Wrapper for app_indicator_set_attention_icon_full() with a NULL
        description.
        @param icon_name: The name of the attention icon to set for this indicator
        @type icon_name: str
        @returns: 
        @rtype: None
        """
        return object
    
    def set_attention_icon_full(self, icon_name=None, icon_desc=None):
        """        Wrapper function for property #AppIndicator:attention-icon-name.
        @param icon_name: The name of the attention icon to set for this indicator
        @param icon_desc: A textual description of the icon
        @type icon_name: str
        @type icon_desc: str
        @returns: 
        @rtype: None
        """
        return object
    
    def set_icon(self, icon_name=None):
        """        Wrapper function for app_indicator_set_icon_full() with a NULL
        description.
        @param icon_name: The icon name to set.
        @type icon_name: str
        @returns: 
        @rtype: None
        """
        return object
    
    def set_icon_full(self, icon_name=None, icon_desc=None):
        """        Sets the default icon to use when the status is active but
        not set to attention.  In most cases, this should be the
        application icon for the program.
        
        Wrapper function for property #AppIndicator:icon-name and
        #AppIndicator::icon-desc.
        @param icon_name: The icon name to set.
        @param icon_desc: A textual description of the icon for accessibility
        @type icon_name: str
        @type icon_desc: str
        @returns: 
        @rtype: None
        """
        return object
    
    def set_icon_theme_path(self, icon_theme_path=None):
        """        Sets the path to use when searching for icons.
        @param icon_theme_path: The icon theme path to set.
        @type icon_theme_path: str
        @returns: 
        @rtype: None
        """
        return object
    
    def set_label(self, label=None, guide=None):
        """        This is a wrapper function for the #AppIndicator:label and
        #AppIndicator:guide properties.  This function can take #NULL
        as either @label or @guide and will clear the entries.
        @param label: The label to show next to the icon.
        @param guide: A guide to size the label correctly.
        @type label: str
        @type guide: str
        @returns: 
        @rtype: None
        """
        return object
    
    def set_menu(self, menu=None):
        """        Sets the menu that should be shown when the Application Indicator
        is clicked on in the panel.  An application indicator will not
        be rendered unless it has a menu.
        
        Wrapper function for property #AppIndicator:menu.
        @param menu: A #GtkMenu to set
        @type menu: Gtk.Menu
        @returns: 
        @rtype: None
        """
        return object
    
    def set_ordering_index(self, ordering_index=None):
        """        Sets the ordering index for the app indicator which effects the
        placement of it on the panel.  For almost all app indicator
        this is not the function you're looking for.
        
        Wrapper function for property #AppIndicator:ordering-index.
        @param ordering_index: A value for the ordering of this app indicator
        @type ordering_index: guint32
        @returns: 
        @rtype: None
        """
        return object
    
    def set_secondary_activate_target(self, menuitem=None):
        """        Set the @menuitem to be activated when a secondary activation event (i.e. a
        middle-click) is emitted over the #AppIndicator icon/label.
        
        The @menuitem can be also a complex #GtkWidget, but to get activated when
        a secondary activation occurs in the #Appindicator, it must be a visible and
        active child (or inner-child) of the #AppIndicator:menu.
        
        Setting @menuitem to %NULL causes to disable this feature.
        @param menuitem: A #GtkWidget to be activated on secondary activation
        @type menuitem: Gtk.Widget
        @returns: 
        @rtype: None
        """
        return object
    
    def set_status(self, status=None):
        """        Wrapper function for property #AppIndicator:status.
        @param status: The status to set for this indicator
        @type status: IndicatorStatus
        @returns: 
        @rtype: None
        """
        return object
    
    def set_title(self, title=None):
        """        Sets the title of the application indicator, or how it should be referred
        in a human readable form.  This string should be UTF-8 and localized as it
        expected that users will set it.
        
        In the Unity desktop the most prominent place that this is show will be
        in the HUD.  HUD listings for this application indicator will start with
        the title as the first part of the line for the menu items.
        
        Setting @title to %NULL removes the title.
        @param title: Title of the app indicator
        @type title: str
        @returns: 
        @rtype: None
        """
        return object

    @property
    def parent(self):
        return object

    @property
    def priv(self):
        return object


class IndicatorClass():
    """The signals and external functions that make up the #AppIndicator
class object."""

    @property
    def parent_class(self):
        return object

    @property
    def new_icon(self):
        return object

    @property
    def new_attention_icon(self):
        return object

    @property
    def new_status(self):
        return object

    @property
    def new_icon_theme_path(self):
        return object

    @property
    def new_label(self):
        return object

    @property
    def connection_changed(self):
        return object

    @property
    def scroll_event(self):
        return object

    @property
    def app_indicator_reserved_ats(self):
        return object

    @property
    def fallback(self):
        return object

    @property
    def unfallback(self):
        return object

    @property
    def app_indicator_reserved_1(self):
        return object

    @property
    def app_indicator_reserved_2(self):
        return object

    @property
    def app_indicator_reserved_3(self):
        return object

    @property
    def app_indicator_reserved_4(self):
        return object

    @property
    def app_indicator_reserved_5(self):
        return object

    @property
    def app_indicator_reserved_6(self):
        return object


class IndicatorPrivate():
    """All of the private data in an instance of an application indicator.
Private Fields"""
